안녕하세요 에듀이노 입니다.
코드 자체에서는 문제는 확인되지 않는 것으로 보이며,
코드에서의 핀연결과 전체 결선도 또한 확인이 필요해보입니다.
감사합니다 ^^
[ Original Message ]
http://www.eduino.kr/product/detail.html?product_no=194&cate_no=69&display_group=1
-코딩목록-
int RAIN=A0,CDS=A1,GAS=A2;
int INS1=11,INS2=10;
int F_LED=8,R_LED=9,LIMIT_LED=7;
int LIMIT1=12,LIMIT2=13;
int SPEEDPIN=6;
//
void setup(){
pinMode(LIMIT1,INPUT); pinMode(LIMIT2,INPUT);
pinMode(A0,INPUT); pinMode(A1,INPUT); pinMode(A2,INPUT);
pinMode(INS1,OUTPUT); pinMode(INS2,OUTPUT);
pinMode(F_LED,OUTPUT); pinMode(R_LED,OUTPUT); pinMode(LIMIT_LED,OUTPUT);
pinMode(SPEEDPIN,OUTPUT);
Serial.begin(9600);
}
//
void loop(){
int i0 = analogRead(RAIN); Serial.println(i0);
int i1 = analogRead(CDS); Serial.println(i1);
int i2 = analogRead(GAS); Serial.println(i2);
int v=0;
if(i0<500)v|=1;
if(i1>100)v|=2;
if(i2>400)v|=4;
//
switch(v){
case 7:
case 6:
case 5:
case 4: digitalWrite(F_LED,1); digitalWrite(R_LED,0); break;
case 3:
case 1: digitalWrite(F_LED,0); digitalWrite(R_LED,1); break;
case 2: digitalWrite(F_LED,1); digitalWrite(R_LED,0); break;
case 0: digitalWrite(F_LED,0); digitalWrite(R_LED,0); break;
}
//
if(digitalRead(F_LED) && !digitalRead(LIMIT1)){
digitalWrite(INS1,1);
digitalWrite(INS2,0);
analogWrite(SPEEDPIN,255);
digitalWrite(LIMIT_LED,0);
}
if(digitalRead(R_LED) && !digitalRead(LIMIT2)){
digitalWrite(INS1,0);
digitalWrite(INS2,1);
analogWrite(SPEEDPIN,255);
digitalWrite(LIMIT_LED,0);
}
if(digitalRead(F_LED) || digitalRead(R_LED) && digitalRead(LIMIT1) || digitalRead(LIMIT2)){
digitalWrite(INS1,0);
digitalWrite(INS2,0);
analogWrite(SPEEDPIN,0);
digitalWrite(LIMIT_LED,0);
}
}
--코딩목록--
어디서 부터 잘못된건지 모르겠습니다. 모터드라이버는 귀 사의 위 링크의 제품을 사용하였습니다.
전체 코딩목록을 올리니 어디가 문제인지 알려주시면 감사하겠습니다.
RAIN=빗물감지센서
CDS=조도감지센서
GAS=가스감지센서
INS1= 위 링크의 모터 드라이브 IN1
INS2= 위 링크의 모터 드라이브 IN2
F_LED=
R_LED=
LIMIT_LED= 각 병렬로 저항에 연결된 다이오드. 정상작동함
LIMIT1=
LIMIT2=리밋 스위치
SPEEDPIN= 위 링크의 모터 드라이브 ENA(점퍼핀 제거함)
보시고 필요한 자료나 추가적인 사진이 필요하시면 답변 부탑드립니다. 바로 추가하여 올리겠습니다.